home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ For TASM / README.TXT < prev    next >
Text File  |  1996-01-10  |  13KB  |  396 lines

  1. ************************************************
  2. *       Welcome to the Scorpion Field Test     *
  3. ************************************************
  4.  
  5. -----------------
  6. TABLE OF CONTENTS
  7. -----------------
  8.  
  9. 1.  Installation
  10.  
  11.     Installing this field test on your hard disk
  12.     Configuring this field test with Polaris or Vulcan
  13.     Configuring Earlier Language products and this field test
  14.     Changes to SYSTEM.INI file
  15.     Configuring the Windows NT command prompt
  16.  
  17. 2.  Features
  18.  
  19. 3.  Important Information
  20.  
  21.     Stepping into Delphi's Dynamic Methods
  22.     The Turbo Debugger User's Guides
  23.     WREMOTE and Delphi Exception handling
  24.     Video Conflicts
  25.     Memory Requirements
  26.     Object file format
  27.     Make
  28.     Out of Memory and MAKESWAP
  29.     Creating 16-bit import libraries from .DEF files
  30.     Make under Windows NT
  31.     New Tools
  32.     Turbo Debugger for Windows
  33.  
  34. 4.  Enhanced MASM Compatibility
  35.  
  36. 5.  Known problems
  37.  
  38. ---------------
  39. 1. INSTALLATION
  40. ---------------
  41.  
  42.  
  43. Installing this field test on your hard disk:
  44. -----------------------------------------------------
  45.     1. Put the install disk in a 3.5" floppy drive.
  46.     2. Change to that drive and type
  47.  
  48.        INSTALL <enter>
  49.  
  50.     3. Fill in directories as appropriate, and INSTALL will create
  51.        appropriate Windows groups, and add the appropriate files to
  52.        the directories you selected.
  53.  
  54. Notes on using Scorpion with previous versions of Borland Tools
  55. ---------------------------------------------------------------
  56.  
  57. This product is designed to be used as a standalone product or in
  58. conjunction with Polaris or Vulcan.  It can also be used with
  59. Borland/Turbo C++ 4.x, Borland Pascal 7 or Delphi 1.0.  If you are using
  60. Scorpion in conjunction with any of these shipping compiler products, they
  61. should be installed such that shared components are drawn from Scorpion.
  62. (i.e.: \tasm5\bin comes before \bc45\bin in your path.)
  63.  
  64. If you already have Vulcan, Polaris, Delphi, Borland C++ 4.x, or Turbo C++
  65. 4.5 on your hard disk, then it is also safe to install Scorpion into the
  66. existing product directory.
  67.  
  68. If you are installing Delphi, or Borland C++ 4.x AFTER this field test has
  69. been installed, you will have to manually change the system
  70. settings that allow these products to coexist:
  71.  
  72. In your system.ini file, check your [386Enh] section for multiple entries
  73. for the device TDDEBUG.386.  Remove duplicate entries of TDDEBUG.386 so
  74. that only the version from this product is loaded.  On disk, you may also
  75. want to rename or remove the BP7 or BC4.x versions of TDDEBUG.386 and
  76. TDWINTH.DLL to avoid their accidental loading.  You must restart Windows
  77. after making changes to system.ini.
  78.  
  79.  
  80. Different versions of TDW may not be run simultaneously.
  81.  
  82. Make sure that old copies of TDW.INI are removed from your system.
  83. (Running the utility TDWINI.EXE will make sure that this takes place.)
  84.  
  85. Changes to SYSTEM.INI file
  86. --------------------------
  87. The install program makes these changes to the SYSTEM.INI file:
  88.  
  89.   1) Adds "device=c:\tasm\bin\windpmi.386" to support our 32-bit tools.
  90.   2) Adds "device=c:\tasm\bin\tddebug.386" to support our debugger.
  91.  
  92.  
  93. Configuring the Windows NT command prompt
  94. -----------------------------------------
  95. To run 16-bit protected-mode programs (tlink) under an NT command prompt
  96. you need to add the following line to CONFIG.NT:
  97.  
  98.   ntcmdprompt
  99.  
  100. Under the default NT command-line prompt, DOS COMMAND.COM is run after
  101. returning from a TSR (such as RTM.EXE which bcc and tlink load). Adding the
  102. above line will cause the original NT CMD.EXE to be run.
  103.  
  104. -----------
  105. 2. FEATURES
  106. -----------
  107.  
  108.   - Enhanced MASM compatibility (see item #4)
  109.   - Dual monitor support under Win95 (tdw -do, td32 -vd)
  110.   - Support for new language constructs (bool, namespaces, etc.)
  111.   - Thunk Compiler compatibility
  112.  
  113.  
  114. ------------------------
  115. 3. IMPORTANT INFORMATION
  116. ------------------------
  117.  
  118.  
  119. Stepping into Delphi's Dynamic Methods
  120. --------------------------------------
  121.  
  122. By default, single-stepping through a program skips over
  123. dynamic methods and does not step into them.  That's
  124. because TDW normally determines all the single-step stop
  125. points when the program is first loaded, at which time
  126. dynamic methods are not yet defined.
  127.  
  128. By following these steps, however, you can change the way
  129. TDW determines stop points and make it possible to step
  130. into dynamic methods.
  131.  
  132.     1) Choose View|Execution History.
  133.  
  134.     2) Invoke the Execution History SpeedMenu, either by
  135.        clicking the right mouse button or by pressing Alt+F10.
  136.  
  137.     3) Toggle the "Full history" option from No to Yes.
  138.  
  139. Now you can step into dynamic methods.
  140.  
  141.  
  142. WREMOTE and Delphi Exception handling
  143. -------------------------------------
  144. Exception handling in a Delphi application is not visible
  145. from WREMOTE.  To debug exception handling code, use TDW
  146. locally.
  147.  
  148. Video Conflicts
  149. ---------------
  150. There are known conflicts between TDW's SVGA video DLL and
  151. some video drivers.  To solve the problem, reconfigure TDW
  152. to use TDWGUI.DLL or Windows to use a standard VGA or SVGA
  153. driver.
  154.  
  155.  
  156.  
  157. Object File Format
  158. ------------------
  159. This product is designed to use and generate only object files which adhere
  160. to the Intel OMF (Object Module Format) specification. This means that TLINK32
  161. and TLIB only accept files of this format, and all provided libraries use
  162. this format. There is no support in the linker or librarian for COFF object
  163. modules produced by Microsoft C tools.
  164.  
  165.  
  166. Out of Memory and MAKESWAP
  167. --------------------------
  168.  
  169. If you get "Out of Memory" errors from DOS when running the command-line
  170. tools, create a swap file with the MAKESWAP utility.  (Note that this
  171. applies to DOS only, not to DOS boxes opened under Windows.) MAKESWAP
  172. takes the size of the file to create in KBytes, for example:
  173.  
  174.   MAKESWAP 12000
  175.  
  176. will create a 12MB swap file in the current directory called EDPMI.SWP
  177. for use by Borland command line tools.  To enable the swap file, use
  178. the DPMI32 environment variable by issuing the following command at
  179. the DOS prompt:
  180.  
  181.   set DPMI32=SWAPFILE <location of swap file>\EDPMI.SWP
  182.  
  183.  
  184. Make under Windows NT
  185. ---------------------
  186. If you encounter difficulties running MAKE under Windows
  187. NT, try running MAKER instead.
  188.  
  189.  
  190. Creating 16-bit import libraries from .DEF files
  191. ------------------------------------------------
  192. Use the /o implib switch when creating 16-bit import libraries from .DEF files
  193. to prevent implib from generating extensions for import entry module names.
  194.  
  195.  
  196. ------------------------------
  197. 4. Enhanced MASM Compatibility
  198. ------------------------------
  199.  
  200. Code that was already running under TASM, even with -umxxx or QUIRKS
  201. should still run. TASM merely accepts the MASM way or option to specify
  202. something and then pays little actual attention to it -- a la QUIRKS.
  203.  
  204.  
  205. You can now use the following MASM features which are equivalent to IDEAL
  206. mode features:
  207.  
  208. MASM                    IDEAL
  209. ----                    -----
  210. STRUCT                  STRUC
  211. EXTERN                  EXTRN
  212. BYTE                    DB
  213. WORD                    DW
  214. DWORD                   DD
  215. TBYTE                   DT
  216. QWORD                   DQ
  217. EXTERNDEF               GLOBAL
  218. PROTO                   PROCDESC
  219.  
  220.  
  221. Conditionals
  222. ------------
  223.  
  224. You can write C-like conditional and control statements that produce code.
  225. Thus you may have such code as:
  226.  
  227.         .while (ax > 3) && bx == 4
  228.                 ...
  229.                 ...
  230.         .endw
  231.  
  232. C-style conditional operators ( =, !=, >=, etc_) are all accepted, and the
  233. directives that work are:
  234.  
  235.         .while
  236.         .repeat
  237.         .if
  238.         .else
  239.         .endif
  240.         .endw
  241.         .until
  242.         .untilcxz
  243.         .break
  244.         .break.if
  245.         .continue
  246.         .continue.if
  247.  
  248. Some special symbols for machine flags are introduced also and may be used
  249. in the conditional statements.  They are:
  250.  
  251.         carry? overflow? parity? sign? and zero?
  252.  
  253. Note that he code that is generated is "sign"- sensitive.  MASM
  254. has introduced not only BYTE and WORD as definitional directives, but has
  255. also added SBYTE, SWORD, SDWORD (and REAL4, REAL8, and REAL10).
  256.  
  257. In general, AX and other registers are considered as unsigned, so to make
  258. a comparison like AX >= 0 meaningful, you must write something like .WHILE
  259. SWORD PTR AX >= 0 .ENDW
  260.  
  261. which will generate
  262.                 cmp     ax,0
  263.                 jl      past the endw line
  264.  
  265. Simply writing
  266.                 .WHILE AX >= 0
  267. will generate
  268.                 cmp     ax,0
  269.                 jb      ....
  270.  
  271. which simply will not work because that comparison will not generate a
  272. carry bit. So be careful when using these .conditionals.
  273.  
  274.  
  275. Macros
  276. ------
  277.  
  278. TEXTEQU is introduced as a new way to handle text macros.
  279.  
  280. Macro commands FOR, FORC, and REPEAT are introduced.  They work just
  281. like IRP, IRPC, and REPT.
  282.  
  283.         Several directives for listing files are added:
  284.  
  285.         .LISTALL, .LISTIF, .LISTMACRO, .LISTMACROALL, .NOLIST,
  286.         .NOLISTIF, .NOLISTMACRO, SUBTITLE
  287.  
  288. However, they introduce no functionality beyond commands that already
  289. exist in TASM.
  290.  
  291.  
  292. Subroutines and Calls
  293. ---------------------
  294.  
  295. PROC declarations have been extended and a PROTO directive has been added
  296. that allow one to declare subroutines in a C- (if not C++) like fashion.
  297. It includes stipulating calling-sequence language type, parameter-types
  298. for stuff on the stack, and even visibility (PUBLIC, PRIVATE, etc.).
  299.  
  300. An INVOKE command has been added to generate code to call such a proc.  It
  301. includes sign-extension, etc., according to the type of parameter in the
  302. proc prototype and the type of variable in the call.
  303.  
  304.  
  305. OPTIONS
  306. -------
  307.  
  308. The specific options detailed below have been implemented.  Any other
  309. OPTIONs will not be implemented and will be silently ignored.  It is
  310. important to note that the assembler will not generate and error or
  311. warning for things that is has not implemented.
  312.  
  313. The syntax is: OPTION KEYWORD any particulars depending on keyword
  314.  
  315.         Here is a list (and little more) of the options:
  316.  
  317. OLDSTRUCTS      NOOLDSTRUCTS
  318.                         ; MASM forbade some things and allowed others
  319.  
  320. M510            NOM510
  321.                         ; be compatible with the popular masm 5.1
  322.                           implies OLDSTRUCTS, OLDMACROS, EXPR16,
  323.                           SETIF2:TRUE, DOTNAME, etc.
  324.  
  325. EXPR16          EXPR32
  326.                         ; default # bits when calculating
  327.  
  328. LJMP            NOLJMP
  329.                         ; automatically adjust conditional jumps
  330.  
  331. PROC: PUBLIC or PRIVATE or EXPORT
  332.                         ; default mode that procs have at link time
  333.  
  334. PROLOGUE        EPILOGUE
  335.                         ; into macros for PROC entry & exit
  336.  
  337. NOKEYWORD
  338.                         ; proviso for using old code that has
  339.                           now-illegal symbols (such as OLD or EXTERN)
  340.  
  341. OLDMACROS       NOOLDMACROS
  342.                         ; mostly a matter of punctuation change
  343.  
  344. DOTNAME         NODOTNAME
  345.                         ; allow symbols to start with a dot
  346.  
  347. OFFSET: GROUP or SEGMENT or FLAT
  348.                         ; how to treat the OFFSET operator
  349. SCOPED          NOSCOPED
  350.                         ; whether to allow 2 subroutines to have
  351.                           identical internal tags
  352. SETIF2: TRUE or FALSE
  353.                         ; how & whether to handle error conditionals like
  354.                                 .ERR2
  355. NOSIGNEXTEND
  356.                         ; code generation for some boolean operations
  357.  
  358. SEGMENT: USE16 or USE32 or FLAT
  359.                         ; the default segment type
  360.  
  361. CASEMAP: None or NOTPUBLIC or ALL
  362.                         ; control linking as to upper-lower case externals
  363.                           and publics. Similar to & interacts with /MX,
  364.                           /ML command line ops
  365.  
  366. EMULATOR        NOEMULATOR
  367.                         ; how to generate floating point code
  368.  
  369. READONLY        NOREADONLY
  370.                         ; to keep code from knowingly being able to clobber
  371.                           itself
  372.  
  373. LANGUAGE: C or PASCAL or FORTRAN or BASIC or SYSCALL or STDCALL
  374.                         ; mainly affects treatment of entry & exit of PROCS
  375.  
  376.  
  377.  
  378.  
  379. ------------------------
  380. 5. Known Problems
  381. ------------------------
  382.  
  383. File | Attach does not work in TD32.
  384.  
  385. Inspecting methods in Delphi objects may lead to a crash.
  386.  
  387. TD32 cannot debug Win32 apps under Win32s.
  388.  
  389. Remote network debugging is not currently supported.
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.